草庐IT

Java 多线程 : Unexpected result

全部标签

c++ - 取消WIN32线程池中计划的work/io/timer项

我一直在研究Windows的(新的?)线程池API。我一直在关注UsingtheThreadPoolFunctions中的示例我一直在仔细研究MSDN上的API。关于清理组,我有些不明白。调用SetThreadpoolCallbackCleanupGroup()时,第三个参数描述为Thecleanupcallbacktobecalledifthecleanupgroupiscanceledbeforetheassociatedobjectisreleased.ThefunctioniscalledwhenyoucallCloseThreadpoolCleanupGroupMembers

c++ - 池化线程的 SetThreadAffinityMask

我想知道是否可以设置从线程池中获取的线程的处理器关联性。更具体地说,线程是通过使用我用来实现周期性任务的TimerQueueAPI获得的。作为旁注:我发现TimerQueues是实现周期性任务的最简单方法,但由于这些通常是长期任务,为此目的使用专用线程是否更合适?此外,预计需要使用信号量和互斥量等同步原语来同步各种周期性任务。池线程适合这些吗?谢谢!EDIT1:正如Leo指出的那样,上述问题实际上是两个松散相关的问题。第一个与池线程的处理器亲和性有关。第二个问题与从TimerQueueAPI获得的池化线程在涉及同步对象时的行为是否与手动创建的线程一样。我将把第二个问题移到一个单独的主题

windows - 无论如何,我无法让这个进度条从线程更新

我有一个用C语言(使用gcc/MinGW)编写的Windows应用程序,除了一些UI问题外,它运行良好。第一,我根本无法让进度条从线程更新。事实上,我可能无法更新任何UI内容。基本上,我有一个执行某些处理的派生线程,我尝试从该线程更新主线程中的进度条。我通过对主hwnd使用PostMessage()来尝试这个,但没有运气,即使我可以做其他事情,比如打开消息框。但是,不清楚消息框是在线程内还是在主线程上被调用。这是一些代码://inheader/globallyaccessibleHWNDwnd;//mainapplicationwindowHWNDprogress_bar;//prog

c# - 可从 Java 访问的 Linux 中的注册表级计数器

我正在寻找Linux系统中的计数器,类似于Windows中的自定义计数器,可以通过C#访问。(http://msdn.microsoft.com/en-us/library/aa326924%28v=vs.71%29.aspx)。我的用例是这样的:我有一个将文件从位置A导入到B的过程。该文件包含一些需要解析并加载到数据库中的XML记录。我希望有一个可以不断递增的计数器,例如,每当在B收到一个新文件,以及每当将一条记录导入数据库时​​。我想定期记录这些计数器值以检测任何不一致之处。当我使用Windows+C#时,我曾经使用自定义计数器(请参阅上面的链接)执行此操作,但我如何在Linux+

java - 在 Java Web 应用程序中获取 Windows 登录详细信息

在java中获取Windows登录详细信息的过程是什么?我们的是一个web应用程序,需要获取Windows登录用户名。大家有什么想法-PD 最佳答案 在JavaScript中varuserName='';varuserDomain='';varwshshell=newActiveXObject("wscript.network");//writetosome(hidden)formfieldwith(document.formname){userName=wshshell.username;userDomain=wshshell.u

windows - 有没有办法用 Java 锁定目录?

我的应用在C:/盘创建了一个目录(文件夹),因为我不想暴露里面的所有数据,也不想加密里面的所有文件,不知道有没有一种锁定文件夹的方法,因此只有我的应用程序可以访问它,其他人无法通过Windows资源管理器或其他程序打开该文件夹,无论我的应用程序是否正在运行,它是否可行? 最佳答案 这本质上是不可能的。你的程序在用户机器上能做的事,他自己做不到。(可能由反编译器和调试器辅助) 关于windows-有没有办法用Java锁定目录?,我们在StackOverflow上找到一个类似的问题:

java - ServerSocket,Tomcat 作为服务和端口

我有一个提供嵌入式Jetty的应用程序(Java)。默认情况下,我尝试获取Jetty服务器的端口8080。如果端口正在使用中,我会随机尝试一个:try{socket=newServerSocket(def);}catch(IOExceptione){socket=newServerSocket(0);}问题是我有一个客户在8080上运行一个Tomcat。如果关闭tomcat,一切都很好。如果Tomcat作为服务运行,并且我的应用程序想要获取一个端口,它会获取默认端口(8080),尽管tomcat正在那里监听。如果浏览localhost:8080/test.html,我会从Tomcat得

java - 将唯一标识符附加到文件

我是Rakesh,我正在开发一个需要一次又一次地归档同名文件的应用程序。这样压缩的文件存储在一个文件夹中。现在让我进入我想将时间戳附加为唯一标识符n的要点,这就是问题所在。当我给出任何正常的int值或任何类似的东西时,它工作正常。它仅在日期格式的情况下抛出异常。我正在附加代码供您通过。请仔细检查代码,让我知道哪里出错了。importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.text.DateFormat;importjava.text.SimpleDateFo

java - 获取不到主板序列号

我使用以下代码获取主板序列号。但我得到了o/pResultisempty。我在这段代码中犯了什么错误?Filefile=File.createTempFile("realhowto",".vbs");file.deleteOnExit();FileWriterfw=newjava.io.FileWriter(file);Stringvbs="SetobjWMIService=GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"+"SetcolItems=objWMIService.ExecQuery_\n"+"(\"Select*fromWin32

java - Runtime.getRuntime().exec() 的奇怪行为

我有一些Java代码可以在Windows机器上执行某个命令。然而,它的行为很奇怪,因为同一个命令在一台机器上有效,但在其他三台机器上却失败了。据我所知,这四台机器中的每一台都是相同的。命令是这样的:cmd/c%APP_HOME%\..\..\some\more\path\executable-arg1=value1-arg2=value2-errorlogname=%APP_HOME%\logs\errors.log-arg3somemoreparameters其中%APP_HOME%是设置为值“D:/path/to/program”的系统变量。我得到的错误是这样的:Applicati